home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / cmds / dviselect / search.h < prev    next >
C/C++ Source or Header  |  1989-06-15  |  1KB  |  32 lines

  1. /*
  2.  * Copyright (c) 1987 University of Maryland Department of Computer Science.
  3.  * All rights reserved.  Permission to copy for any purpose is hereby granted
  4.  * so long as this copyright notice remains intact.
  5.  */
  6.  
  7. /* search structures and routines for 32-bit key, arbitrary data */
  8.  
  9. struct search {
  10.     unsigned s_dsize;    /* data object size (includes key size) */
  11.     unsigned s_space;    /* space left (in terms of objects) */
  12.     unsigned s_n;        /* number of objects in the table */
  13.     char    *s_data;    /* data area */
  14. };
  15.  
  16. /* returns a pointer to the search table (for future search/installs) */
  17. struct    search *SCreate();    /* create a search table */
  18.  
  19. /* returns a pointer to the data object found or created */
  20. char    *SSearch();        /* search for a data object */
  21.  
  22. /* the third argument to SSearch controls operation as follows: */
  23. #define    S_LOOKUP    0x00    /* pseudo flag */
  24. #define    S_CREATE    0x01    /* create object if not found */
  25. #define    S_EXCL        0x02    /* complain if already exists */
  26.  
  27. /* in addition, it is modified before return to hold status: */
  28. #define    S_COLL        0x04    /* collision (occurs iff S_EXCL set) */
  29. #define    S_FOUND        0x08    /* found (occurs iff existed already) */
  30. #define    S_NEW        0x10    /* created (occurs iff S_CREATE && !S_EXCL) */
  31. #define    S_ERROR        0x20    /* problem creating (out of memory) */
  32.